aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/scope-prompt/[scopes]
diff options
context:
space:
mode:
authorLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-09-21 00:19:45 +0000
committerLibravatarLarge Libravatar memdmp <memdmpestrogenzone>2025-09-21 00:19:45 +0000
commitc8230915a2ff08fed97eb0aa48c42ffeb527240f (patch)
tree0101b65e6ade9bbdea6f05d8240c8127398c552a /src/routes/scope-prompt/[scopes]
parent9d959aefb8f36938c2639fd95c58e1c9d4969921 (diff)
downloadcrunched-c8230915a2ff08fed97eb0aa48c42ffeb527240f.tar.gz
crunched-c8230915a2ff08fed97eb0aa48c42ffeb527240f.tar.bz2
crunched-c8230915a2ff08fed97eb0aa48c42ffeb527240f.tar.lz
crunched-c8230915a2ff08fed97eb0aa48c42ffeb527240f.zip

feat: scope prompt

for a target="_blank"

Diffstat (limited to 'src/routes/scope-prompt/[scopes]')
-rw-r--r--src/routes/scope-prompt/[scopes]/+server.ts21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/routes/scope-prompt/[scopes]/+server.ts b/src/routes/scope-prompt/[scopes]/+server.ts
new file mode 100644
index 0000000..f919b9c
--- /dev/null
+++ b/src/routes/scope-prompt/[scopes]/+server.ts
@@ -0,0 +1,21 @@
+import { base } from '$app/paths';
+import { checkScope } from '$lib/auth';
+import { error, redirect } from '@sveltejs/kit';
+
+export const GET = async (e) => {
+ const scopes = e.params.scopes
+ .split(' ')
+ .flatMap((v) => v.split(','))
+ .flatMap((v) => v.split('+'))
+ .filter((v) => v);
+ if (
+ checkScope(
+ await e.locals.auth(),
+ scopes,
+ true,
+ base + '/scope-prompt/ok/if/' + scopes.join(',')
+ )
+ )
+ throw redirect(303, base + '/scope-prompt/ok');
+ else throw error(500, 'In server mode, this branch should be unreachable');
+};